home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 03 - 1987 / 03.04 Apr 87 / MPW macros / doMenu < prev    next >
Encoding:
Text File  |  1987-01-26  |  1.6 KB  |  71 lines  |  [TEXT/MPS ]

  1. set exit 0        #so 'cancel' buttons not fatal
  2.  
  3. "{MPW}macros:getResAttrs" MENU
  4. #set id "`request 'Menu ID?'`"
  5. set mdef "`request -d textMenuProc 'ID of MenuDef proc?'`"
  6. set flags "`request -d allEnabled 'Enable flags (8 hex digits)'`"
  7. set mEnable "`request -d enabled 'Enable Menu?'`"
  8. set title "`request 'Title? (type "apple" for that menu)'`"
  9.  
  10. #put overall info together here
  11. copy •:Δ/∂n/ "{scr}"    #get saved ID
  12. paste § "{active}"
  13. echo ",∂t∂t∂t∂/* ID *∂/"
  14. echo "{mdef},∂t∂/* menu def proc ID *∂/"
  15. echo "{flags},∂t∂t∂/* item flags *∂/"
  16. echo "{mEnable},∂t∂t∂t∂/* menu enable *∂/"
  17. if {title} =~ /[Aa]pple/
  18.     echo "{title},"
  19. else
  20.     echo "∂"{title}∂","
  21. end
  22. echo -n "∂t∂{ "
  23.  
  24. #put together menu items
  25. set ict 0    #item count
  26. loop
  27.     set ititle "`request 'Item?'`"
  28.     break if ({status} != 0) OR ("{ititle}" == "")
  29.     set icon "noIcon"
  30.     set key "noKey"
  31.     set char "noMark"
  32.     set style "plain"
  33.     confirm "Skip item attributes?"
  34.     if {status} != 0    #wants attibutes
  35.         begin
  36.         set icon "`request -d noIcon 'Icon No? (1-based; I will adust)'`"
  37.             if {icon} != "noIcon"
  38.             set icon `evaluate {icon} + 256`
  39.             end
  40.         set key "`request -d noKey 'Key equivalent?'`"
  41.         confirm "Check?"
  42.             if {status} == 0
  43.             set char check
  44.             else
  45.             set char "noMark"
  46.             end
  47.         confirm "Bold?"
  48.             if {status} == 0
  49.             set style bold
  50.             else
  51.             set style "plain"
  52.             end
  53.         end
  54.     end
  55.     if {ict} != 0 ; echo -n "∂t  " ; end    # alignment
  56.     echo "∂"{ititle}∂","
  57.     echo -n "∂t  {icon},"
  58.  
  59.     if {key} != "noKey"            #don't quote noKey
  60.         echo -n "∂"{key}∂","
  61.     else
  62.         echo -n "{key},"
  63.     end
  64.  
  65.     echo "{char},{style};"
  66.     set ict `evaluate {ict} + 1`
  67. end
  68.  
  69. cut \;\ "{active}"    #no ; after last entry
  70. echo "∂n∂t∂}∂n∂};"
  71.